package repository;

import bdzeitor.Conexao;
import com.toedter.calendar.JDateChooser;
import domain.Funcionario;
import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
import javax.swing.table.DefaultTableModel;

public class FuncionarioDAO {
    
    public DefaultTableModel tabArquivo = new DefaultTableModel();
    public Funcionario f;
    
    public void save(String sql) throws SQLException{
        Conexao conexao = new Conexao();
        conexao.getConnection().prepareStatement(sql).executeUpdate();
    }
    
    public void update(String sql) throws SQLException{
        Conexao conexao = new Conexao();
        conexao.getConnection().prepareStatement(sql).executeUpdate();
    }
    
    public void delete(String sql) throws SQLException{
        Conexao conexao = new Conexao();
        conexao.getConnection().prepareStatement(sql).execute();
    }
    
    public void read(String sql) throws SQLException{
        Conexao conexao = new Conexao();
        ResultSet result = null;

        result = conexao.getConnection().prepareStatement(sql).executeQuery();
        
        tabArquivo.addColumn("ID");
        tabArquivo.addColumn("Nome");
        tabArquivo.addColumn("CPF");
        tabArquivo.addColumn("RG");
        tabArquivo.addColumn("Data Nasc.");
        tabArquivo.addColumn("Telefone");
        tabArquivo.addColumn("Salário");
        tabArquivo.addColumn("Endereco");
        tabArquivo.addColumn("Cargo");

        while (result.next()) {
            String vetArquivo[] = new String[9];
            vetArquivo[0] = result.getString("idfuncionario");
            vetArquivo[1] = result.getString("nome");
            vetArquivo[2] = result.getString("cpf");
            vetArquivo[3] = result.getString("rg");
            vetArquivo[4] = result.getString("datanasc");
            vetArquivo[5] = result.getString("telefone");
            vetArquivo[6] = result.getString("salario");
            vetArquivo[7] = result.getString("endereco");
            vetArquivo[8] = result.getString("cargo");
            BigDecimal arredonda = new BigDecimal(vetArquivo[6]); 
            arredonda = arredonda.setScale(2, BigDecimal.ROUND_HALF_UP);
            vetArquivo[6] = arredonda.toString();
            tabArquivo.addRow(vetArquivo);
        }
    }

    public void buscarIdFuncionario(String sql) throws SQLException {
        Conexao conexao = new Conexao();
        ResultSet result = null;

        result = conexao.getConnection().prepareStatement(sql).executeQuery();
        
        f = new Funcionario();
        
        while (result.next()) {
            f.setId(Integer.parseInt(result.getString("idfuncionario")));
            f.setNome(result.getString("nome"));
            f.setCpf(result.getString("cpf"));
            f.setRg(result.getString("rg"));

            String s[] = result.getString("datanasc").split("-");
            Date d = new Date(Integer.parseInt(s[0])-1900, Integer.parseInt(s[1])-1, Integer.parseInt(s[2]));
            f.setDataNasc(new JDateChooser(d));

            f.setTelefone(result.getString("telefone"));
            f.setSalario(result.getString("salario"));
            f.setEndereco(result.getString("endereco"));
            f.setCargo(result.getString("cargo"));
            f.setLogin(result.getString("login"));
            f.setSenha(result.getString("senha"));
            break;
        }
    }
}
